package com.cjxy.parking.utils;

import com.cjxy.parking.entity.po.User;

/**
 * 用户上下文工具类
 * 用于存储当前登录用户信息
 *
 * @author: YourName
 * @date: 2025-10-26
 */
public class UserContext {
    
    private static final ThreadLocal<User> USER_THREAD_LOCAL = new ThreadLocal<>();
    
    /**
     * 设置当前用户信息
     *
     * @param user 用户信息
     */
    public static void setUser(User user) {
        USER_THREAD_LOCAL.set(user);
    }
    
    /**
     * 获取当前用户信息
     *
     * @return 用户信息
     */
    public static User getUser() {
        return USER_THREAD_LOCAL.get();
    }
    
    /**
     * 获取当前用户ID
     *
     * @return 用户ID
     */
    public static Integer getUserId() {
        User user = getUser();
        return user != null ? user.getUid() : null;
    }
    
    /**
     * 获取当前用户名
     *
     * @return 用户名
     */
    public static String getUsername() {
        User user = getUser();
        return user != null ? user.getUsername() : null;
    }
    
    /**
     * 清除当前用户信息
     */
    public static void clear() {
        USER_THREAD_LOCAL.remove();
    }
}